//	Author: EJS
//	This file describes objects used in the engine

/**
 * Adventure() is an abstract object. All elements that a single adventure should hold are included
 * here. Developers should set these variables to real data when creating a new adventure.
 * Not all of these variables need to be implemented. Assign variables to objects when preferred.
 * These objects can be extended with other variables/functions.
 */
function Adventure() {
	var adventureName;
	var screenList;
	var items;
	var backgroundMusic;
	var worldmap;
	var journalLogs;
	
	/*
	 * In-mutable variables:
	 * 	adventureName: The name of this adventure seen by the user
	 * 	screenList: A collection of screens used by this adventure
	 * 	items: Collection of items used in this adventure
	 * 	backgroundMusic: Path to the audio file that can be played throughout the adventure/game (every sceen)
	 * 
	 * Mutable variables:
	 *	worldmap: The path to the image file used for the worldmap
	 *	journalLogs: A collection of JournLog objects. Used by the player to see entrys in the journal.
	 */
	
}

/**
 * Screen() is an abstract object. It describes what could be described on a single screen/area
 * in a single adventure.
 */
function Screen() {
	var screenId;
	var screenImage;
	var screenDescription;
	var interQuestion;
	var textAnswers = [];
	var imageAnswers = [];
	var backgroundMusic;
	var sound;
	var coordinates;
	var screenfunc;
	
	/*
	 * In-mutable variables:
	 *	screenId: The Id of the screen
	 * 	screenImage: Every screen has a single background image. Use this variable to
	 * 		reference the location of that image.
	 *	screenDescription (optional): text that describes the screen
	 * 	interQuestion: Used when you want to ask the player to make a choice. Includes a
	 * 		single text that the player sees when player enters the screen. Should be used
	 *		to guide the player through the current screen.
	 * 	textAnswers: A single screen might display a number of texts which the player can choose from.
	 *		The player will then be transfered to another screen depending on the choice he made.
	 *	imageAnswers: The player can also interact with the screen image. This variable includes the
	 *		coordinates of the interactive points on the screen. Each point will transfer the player
	 *		to another screen.
	 *	sound: Path to the audio file that is played when the player enters the current screen
	 */
}

/**
 * Item() is an abstract object used to describe items in RPDroid.
 */
function Item() {
	var itemId;
	var itemDescription;
	var itemImage;
	var playerHasItem;
	
	/*
	 * In-mutable variables:
	 * 	itemId: id of the item
	 * 	itemDescription: the description which the player can see for each iten
	 * 	itemImage: the location of the image/icon for the item
	 *	playerHasItem: boolean, is true if the item is in the players inventory, else false
	 */
}

/**
 * JournalLog() is an abstract object used to describe journal logs in RPDroid.
 */
function JournalLog() {
	var logId;
	var logDescription;
	var playerHasJournalLog;
	var completed;
	
	/*
	 * In-mutable variables:
	 * 	logId: id of the log entry
	 * 	logDescription: the description which the player can see for each log entry
	 *	playerHasJournalLog: boolean, is true if the log is visable in the players journal, else false
	 *	completed: boolean, is true if the log/objective has been completed, else false
	 */
}